home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 14 / CU Amiga Magazine's Super CD-ROM 14 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-09].iso / CUCD / Programming / GMS / Source / E / Screens / ScrollScreen.e < prev   
Encoding:
Text File  |  1997-05-03  |  1.5 KB  |  59 lines

  1. /*
  2. ** Scroll Screen 336
  3. ** -----------------
  4. ** This demo allows you to legally scroll up to 50 screens in either
  5. ** direction by setting the HBUFFER flag.  Normally we would blit blocks down
  6. ** the left and right hand side to give an impression of heaps of screens -
  7. ** see the MapEditor for this.
  8. ** 
  9. */
  10.  
  11. MODULE 'games','games/games'
  12.  
  13. PROC main()
  14.    DEF screen:PTR TO gamescreen, zbxy:LONG, pic:PTR TO picture
  15.  
  16.    IF gmsbase := OpenLibrary('GMS:GPI/Master.GPI',0)
  17.       SetUserPrefs(0)
  18.       IF (screen := AddScreen([TAGS,0,
  19.          GSA_SCRWIDTH,320,
  20.          GSA_SCRHEIGHT,256,
  21.          GSA_PICWIDTH,336,
  22.          GSA_PICHEIGHT,256,
  23.          GSA_PLANES,5,
  24.          GSA_SCRATTRIB,HSCROLL OR SBUFFER,
  25.          TAGEND]))
  26.  
  27.          IF (pic := LoadPic([TAGS,0,
  28.             PCA_DATA,screen.memptr1,
  29.             PCA_WIDTH,336,
  30.             PCA_HEIGHT,256,
  31.             PCA_PLANES,5,
  32.             PCA_AMTCOLOURS,32,
  33.             PCA_OPTIONS,GETPALETTE,
  34.             PCA_SCRMODE,screen.scrmode,
  35.             PCA_SCRTYPE,screen.scrtype,
  36.             PCA_FILE,'GMS:demos/data/PIC.Green',
  37.             TAGEND]))
  38.  
  39.             screen.palette := pic.palette
  40.             UpdatePalette(screen)
  41.  
  42.             ShowScreen(screen)
  43.             InitJoyPorts()
  44.  
  45.             REPEAT
  46.               zbxy := ReadMouse(JPORT1)
  47.               screen.picxoffset := screen.picxoffset+getZBXYx(zbxy)
  48.               MovePicture(screen)
  49.               WaitVBL()
  50.            UNTIL !(zbxy AND MB_LMB)
  51.  
  52.          FreePic(pic)
  53.          ENDIF
  54.       DeleteScreen(screen)        
  55.       ENDIF
  56.    CloseGMS()
  57.    ENDIF
  58. ENDPROC
  59.